Typing is part of many scenarios on a mobile device including writing a text message, writing an email, searching for a contact, and typing a URL (uniform resource locator), for example. Typing on a mobile device can be slow and frustrating. This can be especially true when using an on-screen software keyboard.
One solution to this problem is known as a soft input panel. In a soft input panel, a region of the screen displays suggested word predictions based on the characters that a user has entered so far into a text input field. The suggested words change as the user continues to enter characters into the field. When the user sees a word prediction that matches the word that he is entering, the user may select the word prediction and the selected word is placed in the text input field as a replacement for the characters entered by the user.
Typically, the word predictions shown to the user are generated by matching the entered characters against words in a dictionary, and then presenting a ranked subset of the matching words based on a likelihood that each word is the word that the user intends to enter. The likelihood may be based on the overall frequency of usage of each matching word by the general population.
One drawback to such a method for providing word predictions is that it fails to take into account the words or phrases currently or recently used by the user, or other users, when selecting the word predictions, or when ranking the word predictions. For example, a user may be having a short message service (SMS) or email conversation with another user about a recent trip to Texas. When a user enters the character “t” into the text input field, the user may be provided word predictions such as “the”, “their”, and “there” because they begin with “t” and are high frequency words in the English language. The word prediction “Texas” is not provided to the user because it either does not match an entry in the dictionary, or it is not ranked highly enough, even though it is likely given the contents of the conversation so far.